<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Ball Balancing Plate: Control</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="logo.jpg"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Ball Balancing Plate
   &#160;<span id="projectnumber">1.0.0</span>
   </div>
   <div id="projectbrief">Object recognition and control algorithm software.</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('group___control.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Control</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compute.html">Compute</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_kalman.html">Kalman</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_d.html">PID</a></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gaf3c82099d63a2d91d68bd62d954059c7">MAX_ANGLE</a>&#160;&#160;&#160;90.0f</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Max servo angle absolute value.  <a href="#gaf3c82099d63a2d91d68bd62d954059c7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga5de5e8e3ab304842347b047eb9a7a468">map</a>(in, inMin, inMax, outMin, outMax)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scale an input value within a given range.  <a href="#ga5de5e8e3ab304842347b047eb9a7a468"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gae534547361f20b9a2207606251572301">constrain</a>(value, min, max)&#160;&#160;&#160;( (value&lt;min)? min: ((value&gt;min)?max:value))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constrain a value within a range.  <a href="#gae534547361f20b9a2207606251572301"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga06063e8787ec8883de4ea5b5cc347b9b">Compute::Compute</a> (int width, int height)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The constructor.  <a href="#ga06063e8787ec8883de4ea5b5cc347b9b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga0b870ef17154c6d4395e38a706b0421f">Compute::~Compute</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The destructor.  <a href="#ga0b870ef17154c6d4395e38a706b0421f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_p_i_d.html">PID</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gad916f913222c92830ecb4a192b67c6d4">Compute::getPIDX</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="class_p_i_d.html">PID</a> x axis.  <a href="#gad916f913222c92830ecb4a192b67c6d4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_p_i_d.html">PID</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga23898dbfd5e46b3dbe38d245bd417b9d">Compute::getPIDY</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="class_p_i_d.html">PID</a> y axis.  <a href="#ga23898dbfd5e46b3dbe38d245bd417b9d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga426882753acbede055673691abe6b597">Compute::setPoint</a> (int x, int y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the x,y coordinates of the set point.  <a href="#ga426882753acbede055673691abe6b597"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gaab1c21a03462410a52b24047c66961fe">Compute::center</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the set point to the center.  <a href="#gaab1c21a03462410a52b24047c66961fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gae689eda9201b54d1ca06a04a693b0e73">Compute::IsConnected</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check serial connection.  <a href="#gae689eda9201b54d1ca06a04a693b0e73"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga654ce447d37ead187bf4294108f14dff">Compute::Update</a> (int x, int y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Main control function.  <a href="#ga654ce447d37ead187bf4294108f14dff"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gadda796b81679fb1274b031977ed4aa85">Compute::SetPlotter</a> (char *, IplImage *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set OpenCV output window and image.  <a href="#gadda796b81679fb1274b031977ed4aa85"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gab35c5e0efd0fc15725300a44ec49ab3b">Compute::Plot</a> (float x_est, float y_est)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw a XY plot.  <a href="#gab35c5e0efd0fc15725300a44ec49ab3b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gafced0e28f571d98e8a3c7057e87cd100">Kalman::Kalman</a> (float Q, float R)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The constructor.  <a href="#gafced0e28f571d98e8a3c7057e87cd100"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga4e54bc3ac77da48219de5b6297d90386">Kalman::~Kalman</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The destructor.  <a href="#ga4e54bc3ac77da48219de5b6297d90386"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gaa5abc03d34d704f352f145904ddbc3b4">Kalman::update</a> (float measure)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Update estimated value.  <a href="#gaa5abc03d34d704f352f145904ddbc3b4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga6b6b4ec371d4bdf395be50f08ed3b04e">PID::PID</a> (float P, float I, float D)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The constructor.  <a href="#ga6b6b4ec371d4bdf395be50f08ed3b04e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gab7d389fc5b88d881bc25f5dafd360441">PID::~PID</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The destructor.  <a href="#gab7d389fc5b88d881bc25f5dafd360441"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga953e7ee82c4a11997d740771a2b1d610">PID::setP</a> (float val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set P value.  <a href="#ga953e7ee82c4a11997d740771a2b1d610"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga63ddc5b4d6f6f4cd2166d27b96102240">PID::setD</a> (float val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set D value.  <a href="#ga63ddc5b4d6f6f4cd2166d27b96102240"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#gaf797ee59d8789940905d9b3692a801ab">PID::setI</a> (float val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set I value.  <a href="#gaf797ee59d8789940905d9b3692a801ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___control.html#ga00974abc051527b2dcdcaf15d766872b">PID::updatePID</a> (float targetPosition, float currentPosition)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_p_i_d.html">PID</a> controller update function.  <a href="#ga00974abc051527b2dcdcaf15d766872b"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="gae534547361f20b9a2207606251572301"></a><!-- doxytag: member="PID.hpp::constrain" ref="gae534547361f20b9a2207606251572301" args="(value, min, max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group___control.html#gae534547361f20b9a2207606251572301">constrain</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">value, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">min, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">max&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;( (value&lt;min)? min: ((value&gt;min)?max:value))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constrain a value within a range. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>the value to constrain. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>lower range limit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max</td><td>upper range limit.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The constrained value. </dd></dl>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">value</td><td>if the value is within the given range. </td></tr>
    <tr><td class="paramname">min</td><td>if the value exceeds lower range bound </td></tr>
    <tr><td class="paramname">max</td><td>if the value exceeds upper range bound </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga5de5e8e3ab304842347b047eb9a7a468"></a><!-- doxytag: member="PID.hpp::map" ref="ga5de5e8e3ab304842347b047eb9a7a468" args="(in, inMin, inMax, outMin, outMax)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group___control.html#ga5de5e8e3ab304842347b047eb9a7a468">map</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">in, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">inMin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">inMax, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">outMin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">outMax&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">(((float)in - (<span class="keywordtype">float</span>)inMin) / \
        ((<span class="keywordtype">float</span>)inMax - (float)inMin) * \
        ((float)outMax - (<span class="keywordtype">float</span>)outMin) + (<span class="keywordtype">float</span>)outMin)
</pre></div>
<p>Scale an input value within a given range. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the value to scale. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inMin</td><td>the lower bound of input value. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inMax</td><td>the upper bound of input value. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">outMin</td><td>the lower bound of output value. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">outMax</td><td>the upper bound of utput value.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the scaled value. </dd></dl>

</div>
</div>
<a class="anchor" id="gaf3c82099d63a2d91d68bd62d954059c7"></a><!-- doxytag: member="compute.hpp::MAX_ANGLE" ref="gaf3c82099d63a2d91d68bd62d954059c7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group___control.html#gaf3c82099d63a2d91d68bd62d954059c7">MAX_ANGLE</a>&#160;&#160;&#160;90.0f</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Max servo angle absolute value. </p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gaab1c21a03462410a52b24047c66961fe"></a><!-- doxytag: member="Compute::center" ref="gaab1c21a03462410a52b24047c66961fe" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group___control.html#gaab1c21a03462410a52b24047c66961fe">Compute::center</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reset the set point to the center. </p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___control_gaab1c21a03462410a52b24047c66961fe_icgraph.png" border="0" usemap="#group___control_gaab1c21a03462410a52b24047c66961fe_icgraph" alt=""/></div>
<map name="group___control_gaab1c21a03462410a52b24047c66961fe_icgraph" id="group___control_gaab1c21a03462410a52b24047c66961fe_icgraph">
<area shape="rect" id="node3" href="group___main.html#gae66f6b31b5ad750f1fe042a706a4e3d4" title="The program entry point." alt="" coords="173,5,224,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga06063e8787ec8883de4ea5b5cc347b9b"></a><!-- doxytag: member="Compute::Compute" ref="ga06063e8787ec8883de4ea5b5cc347b9b" args="(int width, int height)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___control.html#ga06063e8787ec8883de4ea5b5cc347b9b">Compute::Compute</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The constructor. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>Camera frame width. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Camera frame height. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad916f913222c92830ecb4a192b67c6d4"></a><!-- doxytag: member="Compute::getPIDX" ref="gad916f913222c92830ecb4a192b67c6d4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_p_i_d.html">PID</a> * <a class="el" href="group___control.html#gad916f913222c92830ecb4a192b67c6d4">Compute::getPIDX</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return <a class="el" href="class_p_i_d.html">PID</a> x axis. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The <a class="el" href="class_p_i_d.html">PID</a> instance. </dd></dl>

</div>
</div>
<a class="anchor" id="ga23898dbfd5e46b3dbe38d245bd417b9d"></a><!-- doxytag: member="Compute::getPIDY" ref="ga23898dbfd5e46b3dbe38d245bd417b9d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_p_i_d.html">PID</a> * <a class="el" href="group___control.html#ga23898dbfd5e46b3dbe38d245bd417b9d">Compute::getPIDY</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return <a class="el" href="class_p_i_d.html">PID</a> y axis. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The <a class="el" href="class_p_i_d.html">PID</a> instance. </dd></dl>

</div>
</div>
<a class="anchor" id="gae689eda9201b54d1ca06a04a693b0e73"></a><!-- doxytag: member="Compute::IsConnected" ref="gae689eda9201b54d1ca06a04a693b0e73" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="group___control.html#gae689eda9201b54d1ca06a04a693b0e73">Compute::IsConnected</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check serial connection. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>TRUE if serial port has been connected, FALSE otherwise. </dd></dl>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___control_gae689eda9201b54d1ca06a04a693b0e73_cgraph.png" border="0" usemap="#group___control_gae689eda9201b54d1ca06a04a693b0e73_cgraph" alt=""/></div>
<map name="group___control_gae689eda9201b54d1ca06a04a693b0e73_cgraph" id="group___control_gae689eda9201b54d1ca06a04a693b0e73_cgraph">
<area shape="rect" id="node3" href="group___serial.html#gaa53e46b5c8556152d5d3306fdab4117c" title="Get the connection status." alt="" coords="209,5,343,35"/></map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___control_gae689eda9201b54d1ca06a04a693b0e73_icgraph.png" border="0" usemap="#group___control_gae689eda9201b54d1ca06a04a693b0e73_icgraph" alt=""/></div>
<map name="group___control_gae689eda9201b54d1ca06a04a693b0e73_icgraph" id="group___control_gae689eda9201b54d1ca06a04a693b0e73_icgraph">
<area shape="rect" id="node3" href="group___main.html#gae66f6b31b5ad750f1fe042a706a4e3d4" title="The program entry point." alt="" coords="208,5,259,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gafced0e28f571d98e8a3c7057e87cd100"></a><!-- doxytag: member="Kalman::Kalman" ref="gafced0e28f571d98e8a3c7057e87cd100" args="(float Q, float R)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___control.html#gafced0e28f571d98e8a3c7057e87cd100">Kalman::Kalman</a> </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>Q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>R</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The constructor. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">Q</td><td>Estimation of the noise covariance. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">R</td><td>Estimation of the noise covariance. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga6b6b4ec371d4bdf395be50f08ed3b04e"></a><!-- doxytag: member="PID::PID" ref="ga6b6b4ec371d4bdf395be50f08ed3b04e" args="(float P, float I, float D)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___control.html#ga6b6b4ec371d4bdf395be50f08ed3b04e">PID::PID</a> </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>P</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>I</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>D</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The constructor. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">P</td><td>Proportional gain. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">I</td><td>Integral gain. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">D</td><td>Derivative gain. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab35c5e0efd0fc15725300a44ec49ab3b"></a><!-- doxytag: member="Compute::Plot" ref="gab35c5e0efd0fc15725300a44ec49ab3b" args="(float x_est, float y_est)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group___control.html#gab35c5e0efd0fc15725300a44ec49ab3b">Compute::Plot</a> </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x_est</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y_est</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draw a XY plot. </p>
<p>This function draws a XY plot of <a class="el" href="class_kalman.html">Kalman</a> estimation comparing values with the given set point.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x_est</td><td>the <a class="el" href="class_kalman.html">Kalman</a> estimation of the x position. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y_est</td><td>the <a class="el" href="class_kalman.html">Kalman</a> estimation of the y position. </td></tr>
  </table>
  </dd>
</dl>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___control_gab35c5e0efd0fc15725300a44ec49ab3b_icgraph.png" border="0" usemap="#group___control_gab35c5e0efd0fc15725300a44ec49ab3b_icgraph" alt=""/></div>
<map name="group___control_gab35c5e0efd0fc15725300a44ec49ab3b_icgraph" id="group___control_gab35c5e0efd0fc15725300a44ec49ab3b_icgraph">
<area shape="rect" id="node3" href="group___control.html#ga654ce447d37ead187bf4294108f14dff" title="Main control function." alt="" coords="160,5,283,35"/><area shape="rect" id="node5" href="group___main.html#gae66f6b31b5ad750f1fe042a706a4e3d4" title="The program entry point." alt="" coords="331,5,381,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga63ddc5b4d6f6f4cd2166d27b96102240"></a><!-- doxytag: member="PID::setD" ref="ga63ddc5b4d6f6f4cd2166d27b96102240" args="(float val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group___control.html#ga63ddc5b4d6f6f4cd2166d27b96102240">PID::setD</a> </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set D value. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf797ee59d8789940905d9b3692a801ab"></a><!-- doxytag: member="PID::setI" ref="gaf797ee59d8789940905d9b3692a801ab" args="(float val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group___control.html#gaf797ee59d8789940905d9b3692a801ab">PID::setI</a> </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set I value. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga953e7ee82c4a11997d740771a2b1d610"></a><!-- doxytag: member="PID::setP" ref="ga953e7ee82c4a11997d740771a2b1d610" args="(float val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group___control.html#ga953e7ee82c4a11997d740771a2b1d610">PID::setP</a> </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set P value. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gadda796b81679fb1274b031977ed4aa85"></a><!-- doxytag: member="Compute::SetPlotter" ref="gadda796b81679fb1274b031977ed4aa85" args="(char *, IplImage *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group___control.html#gadda796b81679fb1274b031977ed4aa85">Compute::SetPlotter</a> </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IplImage *&#160;</td>
          <td class="paramname"><em>image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set OpenCV output window and image. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win</td><td>the plotter window to set. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>the output image to set. </td></tr>
  </table>
  </dd>
</dl>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___control_gadda796b81679fb1274b031977ed4aa85_icgraph.png" border="0" usemap="#group___control_gadda796b81679fb1274b031977ed4aa85_icgraph" alt=""/></div>
<map name="group___control_gadda796b81679fb1274b031977ed4aa85_icgraph" id="group___control_gadda796b81679fb1274b031977ed4aa85_icgraph">
<area shape="rect" id="node3" href="group___main.html#gae66f6b31b5ad750f1fe042a706a4e3d4" title="The program entry point." alt="" coords="195,5,245,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga426882753acbede055673691abe6b597"></a><!-- doxytag: member="Compute::setPoint" ref="ga426882753acbede055673691abe6b597" args="(int x, int y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group___control.html#ga426882753acbede055673691abe6b597">Compute::setPoint</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Update the x,y coordinates of the set point. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>x axis coordinate of the set point. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>y axis coordinate of the set point. </td></tr>
  </table>
  </dd>
</dl>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___control_ga426882753acbede055673691abe6b597_icgraph.png" border="0" usemap="#group___control_ga426882753acbede055673691abe6b597_icgraph" alt=""/></div>
<map name="group___control_ga426882753acbede055673691abe6b597_icgraph" id="group___control_ga426882753acbede055673691abe6b597_icgraph">
<area shape="rect" id="node3" href="group___main.html#gae66f6b31b5ad750f1fe042a706a4e3d4" title="The program entry point." alt="" coords="184,5,235,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gaa5abc03d34d704f352f145904ddbc3b4"></a><!-- doxytag: member="Kalman::update" ref="gaa5abc03d34d704f352f145904ddbc3b4" args="(float measure)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="group___control.html#gaa5abc03d34d704f352f145904ddbc3b4">Kalman::update</a> </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>measure</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Update estimated value. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">measure</td><td>The measured value</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The estimated value. </dd></dl>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___control_gaa5abc03d34d704f352f145904ddbc3b4_icgraph.png" border="0" usemap="#group___control_gaa5abc03d34d704f352f145904ddbc3b4_icgraph" alt=""/></div>
<map name="group___control_gaa5abc03d34d704f352f145904ddbc3b4_icgraph" id="group___control_gaa5abc03d34d704f352f145904ddbc3b4_icgraph">
<area shape="rect" id="node3" href="group___control.html#ga654ce447d37ead187bf4294108f14dff" title="Main control function." alt="" coords="168,5,291,35"/><area shape="rect" id="node5" href="group___main.html#gae66f6b31b5ad750f1fe042a706a4e3d4" title="The program entry point." alt="" coords="339,5,389,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga654ce447d37ead187bf4294108f14dff"></a><!-- doxytag: member="Compute::Update" ref="ga654ce447d37ead187bf4294108f14dff" args="(int x, int y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group___control.html#ga654ce447d37ead187bf4294108f14dff">Compute::Update</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Main control function. </p>
<p>This function is responsible for the control of the plate: it makes an estimation of the real position of the object, then generate control signals (i.e. angles for each servos) using PIDs.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>object x coordinate. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>object y coordinate. </td></tr>
  </table>
  </dd>
</dl>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___control_ga654ce447d37ead187bf4294108f14dff_cgraph.png" border="0" usemap="#group___control_ga654ce447d37ead187bf4294108f14dff_cgraph" alt=""/></div>
<map name="group___control_ga654ce447d37ead187bf4294108f14dff_cgraph" id="group___control_ga654ce447d37ead187bf4294108f14dff_cgraph">
<area shape="rect" id="node3" href="group___serial.html#gaa53e46b5c8556152d5d3306fdab4117c" title="Get the connection status." alt="" coords="177,5,311,35"/><area shape="rect" id="node5" href="group___control.html#gaa5abc03d34d704f352f145904ddbc3b4" title="Update estimated value." alt="" coords="188,59,300,88"/><area shape="rect" id="node7" href="group___control.html#ga00974abc051527b2dcdcaf15d766872b" title="PID controller update function." alt="" coords="189,112,299,141"/><area shape="rect" id="node9" href="group___serial.html#ga3cce4a34142e8e2adbda131d43103e01" title="Write data to serial port." alt="" coords="184,165,304,195"/><area shape="rect" id="node11" href="group___control.html#gab35c5e0efd0fc15725300a44ec49ab3b" title="Draw a XY plot." alt="" coords="192,219,296,248"/></map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___control_ga654ce447d37ead187bf4294108f14dff_icgraph.png" border="0" usemap="#group___control_ga654ce447d37ead187bf4294108f14dff_icgraph" alt=""/></div>
<map name="group___control_ga654ce447d37ead187bf4294108f14dff_icgraph" id="group___control_ga654ce447d37ead187bf4294108f14dff_icgraph">
<area shape="rect" id="node3" href="group___main.html#gae66f6b31b5ad750f1fe042a706a4e3d4" title="The program entry point." alt="" coords="176,5,227,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga00974abc051527b2dcdcaf15d766872b"></a><!-- doxytag: member="PID::updatePID" ref="ga00974abc051527b2dcdcaf15d766872b" args="(float targetPosition, float currentPosition)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="group___control.html#ga00974abc051527b2dcdcaf15d766872b">PID::updatePID</a> </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>targetPosition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>currentPosition</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="class_p_i_d.html">PID</a> controller update function. </p>
<p><a class="el" href="class_compute.html">Compute</a> the <a class="el" href="class_p_i_d.html">PID</a> output according to the current reference signal value and the desired target reference value.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">targetPosition</td><td>the target reference value. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">currentPosition</td><td>current signal value.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the actuator input signal needed to reach the target reference value. </dd></dl>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___control_ga00974abc051527b2dcdcaf15d766872b_icgraph.png" border="0" usemap="#group___control_ga00974abc051527b2dcdcaf15d766872b_icgraph" alt=""/></div>
<map name="group___control_ga00974abc051527b2dcdcaf15d766872b_icgraph" id="group___control_ga00974abc051527b2dcdcaf15d766872b_icgraph">
<area shape="rect" id="node3" href="group___control.html#ga654ce447d37ead187bf4294108f14dff" title="Main control function." alt="" coords="165,5,288,35"/><area shape="rect" id="node5" href="group___main.html#gae66f6b31b5ad750f1fe042a706a4e3d4" title="The program entry point." alt="" coords="336,5,387,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga0b870ef17154c6d4395e38a706b0421f"></a><!-- doxytag: member="Compute::~Compute" ref="ga0b870ef17154c6d4395e38a706b0421f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___control.html#ga0b870ef17154c6d4395e38a706b0421f">Compute::~Compute</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The destructor. </p>

</div>
</div>
<a class="anchor" id="ga4e54bc3ac77da48219de5b6297d90386"></a><!-- doxytag: member="Kalman::~Kalman" ref="ga4e54bc3ac77da48219de5b6297d90386" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___control.html#ga4e54bc3ac77da48219de5b6297d90386">Kalman::~Kalman</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The destructor. </p>

</div>
</div>
<a class="anchor" id="gab7d389fc5b88d881bc25f5dafd360441"></a><!-- doxytag: member="PID::~PID" ref="gab7d389fc5b88d881bc25f5dafd360441" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___control.html#gab7d389fc5b88d881bc25f5dafd360441">PID::~PID</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The destructor. </p>

</div>
</div>
</div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div>
  <div id="nav-path" class="navpath">
    <ul>

    <li class="footer">Generated on Wed Jun 5 2013 12:20:17 for Ball Balancing Plate by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
